Brahma Consulting Group is a Recruitment firm powered by a mission to deliver personalized, industry-focused recruitment solutions. We are currently assisting our client in their search for a Senior Embedded Software Engineer (Linux Kernel)- in the Greater San Diego area.
Job Overview:
We are seeking a highly skilled and experienced Senior Embedded Software Engineer to join our team. The ideal candidate will have a deep understanding of Linux kernel internals, device drivers, and system programming. They will contribute to the design, development, and maintenance of kernel-level solutions, working closely with hardware and software teams. If you are passionate about open-source development, solving complex system-level challenges, and contributing to the Linux kernel community, we’d love to meet you.
Key Responsibilities:
- Develop, modify, and maintain Linux kernel modules and device drivers.
- Work on system-level programming, including memory management, process management, and file systems.
- Debug and resolve kernel-related issues using tools such as gdb, kgdb, and crash.
- Contribute to kernel patches, collaborating with the open-source community to submit patches for upstream Linux distributions.
- Perform board bring-up activities and work on embedded platforms (x86, ARM, MIPS, etc.).
- Implement multi-threaded solutions and optimize kernel code for performance.
- Design and implement low-level hardware interaction, including I/O management and peripheral communication protocols (I2C, SPI, PCI, etc.).
- Develop networking features and protocols (TCP/IP, Ethernet) and integrate them with the kernel.
- Collaborate with cross-functional teams including hardware engineers, system architects, and application developers.
- Work on virtualization technologies such as Xen hypervisor, KVM, or similar.
- Support build systems and work with tools such as Yocto and Buildroot for custom Linux distributions.
Required Qualifications:
- Bachelor’s degree in Computer Science, Electronics, or a related field.
- 7+ years of experience in Linux kernel development.
- Strong proficiency in C/C++ programming, especially for system-level development.
- Deep understanding of Linux kernel internals, device drivers, and system architecture (x86, ARM, MIPS).
- Hands-on experience with kernel debugging tools (gdb, kgdb, crash).
- Experience with hardware bring-up and low-level hardware communication protocols (PCIe, I2C, UART).
- Strong knowledge of networking protocols (TCP/IP, Ethernet, etc.).
- Experience with multi-threaded programming and optimization of kernel code.
- Familiarity with build systems like Yocto and tools such as Git, Gerrit, and Jenkins.
- Experience working with embedded Linux systems.
- Excellent problem-solving and debugging skills.
Preferred Qualifications:
- Experience contributing to the Linux kernel community, with patches submitted to upstream.
- Familiarity with virtualization technologies like Xen, KVM, and Docker.
- Knowledge of security protocols and cryptography.
- Experience with cloud platforms such as AWS.
- Familiarity with real-time operating systems (RTOS) such as VxWorks or LynxOS.